/*
 * @file     IPC_Client.h
 * @brief    source file for setting Ipc
 *
 * Change Logs:
 * Date            Author             Version        Notes
 * 2021-12-17      dengzhiqian        V1.0.0         the first version
 */
 
#ifndef __IPC_CLIENT_H__
#define __IPC_CLIENT_H__

#include "g_type.h"
#include "ipc_rv.h"
#include "g_timer.h"

#define RV_STACK_TOP    (0x70000)
#define IPC_M0_RV_IRQ  *(volatile int*)(0xd0104)

typedef G_IpcStatusTypeDef (*(*G_Client_Func_TyperDef[]))(uint8_t *pdata);

void G_Ipc_RiscvStart(void);
void G_Ipc_RiscvClose(void);
void G_Ipc_M0_To_Rv_IrqEnable(void);
void G_Ipc_M0_To_Rv_IrqDisable(void);
void G_Rv_To_M0_ClearITPendingBit(void);
void G_Ipc_M0_To_Rv_IrqTrig(void);
G_IpcStatusTypeDef  G_Ipc_Client_Cmd_Process(void);


#endif
